package de.zefania.api;
/**
 * represents a bible book from a bible modul
 * @author Thomas
 *
 */
public interface BibleBook {
	/**
	 * returns the id of the bible modul
	 * @return a BibleModul object
	 */
	String getModulId();
	
	/**
	 * returns the i. chapter of this book
	 * @param i
	 * @return Chapter object
	 */
	Chapter getChapter(int i);
	
	/**
	 * returns the name of this book.<br />
	 * If the modul contains no name, a name from the default list will be taken
	 * @return a chapter object
	 */
	String getName();
	
	/**
	 * returns the number of this book.<br />
	 * @return a chapter object
	 */
	int getNumber();
	
	/**
	 * returns the number of chapters the book contains in this modul.<br/>
	 * note, that this number can differ from modul to modul <br/>
	 * (e.g. depending on the translation Maleachi can contain three or four chapters)
	 * @return number of chapters
	 */
	int countChapters();
	
	/**
	 * returns the list of captions, this modul contains
	 * @return a list of caption objects
	 */
	Caption[] getCaptions();
	
	/**
	 * returns the prolog of the book
	 * <p>
	 * 
	 * @return a Prolog object, null if not available
	 */
	Prolog getProlog();
}
